Garbage Collection on a Stack
نویسنده
چکیده
We present a new scheme for a compacting garbage collector. The algorithm has been derived from observing the behavior of a function stack and is applied by annotating selected function calls. New memory is always allocated from the top of a stack; when an annotated function returns, its result is compacted and the space of temporary objects is reclaimed. A prototype of the algorithm has been implemented; the full source code and some benchmark results are presented. The advantages and drawbacks of the method are discussed in detail.
منابع مشابه
Stack-Summarizing Control-Flow Analysis of Higher-Order Programs
Two sinks drain precision from higher-order flow analyses: (1) merging of argument values upon procedure call and (2) merging of return values upon procedure return. To combat the loss of precision, these two sinks have been addressed independently. In the case of procedure calls, abstract garbage collection reduces argument merging; while in the case of procedure returns, context-free approach...
متن کاملMemory Efficient Hard Real-Time Garbage Collection
As the development of hardware progresses, computers are expected to solve increasingly complex problems. However, solving more complex problems requires more complex software. To be able to develop these software systems, new programming languages with new features and higher abstraction levels are introduced. These features are designed to ease development, but sometimes they also make the ru...
متن کاملPushdown ow analysis with abstract garbage collection
In the static analysis of functional programs, pushdown flow analysis and abstract garbage collection push the boundaries of what we can learn about programs statically. This work illuminates and poses solutions to theoretical and practical challenges that stand in the way of combining the power of these techniques. Pushdown flow analysis grants unbounded yet computable polyvariance to the anal...
متن کاملStack Allocating Objects in Java ( Extended Abstract ) ∗
Allocating objects on the stack rather than the heap reduces the overhead of garbage collection and permits further optimizations. This paper presents a simple and fast algorithm for stack allocating a significant fraction of objects for Java programs. Our implementation in an optimizing batch Java compiler demonstrates the benefit of stack allocation by achieving speed improvements of up to 11...
متن کاملA Garbage Collection Algorithm for Tricia
We present a new algorithm for garbage collection of the term stack in David H. D. Warren's abstract Prolog machine (WAM). The algorithm exploits the possibilities of using a large address space, with special attention paid to virtual memory behaviour. The time required for the algorithm depends linearly on the size of the areas in which garbage is collected. Pseudo-code is given for the whole ...
متن کاملIntrospective pushdown analysis
In the static analysis of functional programs, pushdown flow analysis and abstract garbage collection skirt just inside the boundaries of soundness and decidability. This work illuminates and conquers the theoretical challenges that stand in the way of combining the power of these techniques. Pushdown flow analysis grants unbounded yet computable polyvariance to the analysis of return-flow in h...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1994